package applications.transporteur;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import gestionColis.InfoColis;
import gestionColis.TransporteurPOA;

/**
 * Transporteur
 * @author simongrevin
 *
 */
public class TransporteurImpl extends TransporteurPOA {
	
	/** Liste des demandes de transport reçues par le transporteur */
	private List<DemandeTransport> demandesTransport = new ArrayList<DemandeTransport>();
	
	/** Le transport courant mappé sur le numéro de prestation */
	private Map<String, DemandeTransport> transportCourant;
	
	/** Le numéro de prestation courant de la course en cours */
	private String numPrestaCourant;

	/**
	 * Notifie le transporteur de la présence d'un nouveau colis à transporter
	 */
	@Override
	public void notifierNouveauTransport(InfoColis colis) {
		System.out.println("Un nouveau colis est disponible dans la station : " +colis.idStationDepart );
		System.out.println("Il faut le transporteur à la station : " + colis.idStationArrivee );
		DemandeTransport demandeTransport = new DemandeTransport();
		demandeTransport.recopieInfoColis(colis);
		
		// on ajoute la demande de transport à la liste des demandes de transport non récupérés encore
		demandesTransport.add(demandeTransport);
		
	}
	
	/**
	 * Notifie le transporteur de la prise en charge d'une des demandes de transport
	 * par un autre transporteur
	 */
	@Override
	public void notifierPriseEnCharge(InfoColis colis) {
		
		// on supprime la demande de transport de la liste puisqu'elle a été prise en charge
		for (DemandeTransport demandeTransport : demandesTransport) {
			if (demandeTransport.getNumColis().equals(colis.numColis)) {
				demandesTransport.remove(demandeTransport);
			}
		}
		System.out.println("Le colis " + colis.numColis + " a été pris en charge");
	}
	
}
